Modern data processing systems include a myriad of different resources. A typical example is the Internet, wherein a plethora of web sites (each one including a collection of web pages) are available to provide substantially every kind of information.
However, the task of identifying the web pages that fit specific needs is decidedly nontrivial. For this purpose, search engines are commonly used. Particularly, for each contingent need, a user enters a corresponding query (defined by one or more keywords) into a web page of a selected search engine. In response thereto, the search engine returns a list of web pages that best match the query (according to internal search criteria). Commonly, the search engine assigns a rank to each retrieved web page, so as to order the retrieved web pages according to their (estimated) relevance. The user then has to identify the web pages that are actually of interest (since many web pages may match the same keywords, but in a completely different context). It is then necessary for the user to select the web pages that are the most useful in the specific situation. This is generally based on a trial and error approach, wherein the search is incrementally refined until web pages that provide the required information (with an acceptable level of confidence) are found. However, the whole process is tedious and time consuming.
In order to alleviate this problem, all web browsers that are used to surf through the Internet allow users to create bookmarks for the web pages of most interest (which have been found with the above-mentioned process or suggested by others). Each bookmark stores a link to a corresponding web page, which is identified by a mnemonic description. In this way, the user can access known web pages by simply selecting their bookmarks.
However, the highly dynamic nature of the Internet complicates the management of the bookmarks. Indeed, the web pages change continually over time. For example, web pages may be moved to different locations (for example, when a corresponding web site is reorganized). Moreover, new versions of web pages may be provided (at different locations) with additional functionality. Conversely, web pages may be deleted when they are no longer supported. Moreover, the web pages may also change their content completely; for example, this happens when a corresponding domain name is allowed to lapse and it is then re-registered by someone else.
In any case, it is possible that some bookmarks will be associated with links that are not valid any longer (because they point either to deleted web pages or to different web pages). Therefore, when the user selects one of these bookmarks, s/he receives an error message (if the web page does not exist) or downloads an invalid web page (if it is different from the expected one). In this case, the user has to search again for the desired web page (by repeating the above-described process). This is quite frustrating for the user (since it involves an unforeseen waste of time, which may occur just when the corresponding information is needed urgently). Moreover, the user generally becomes aware that a particular bookmark is not up-to-date a long time after its creation. Therefore, the user may not remember the search strategy that was used to find the corresponding web page; and as a result, the identification of the corresponding web page may be even more difficult.